#pragma once
class Distribution
{
public:
	static const int NORMAL = 0;
	static const int EXPONENTIAL = 1;
	static const int DISCREET = 2;

	Distribution(int type, double a, double b = 0.0) : type(type), a(a), b(b) {}
	double generate();

private:
	int type;
	double a, b;

	double rand_e(double lambda);
	double rand_d(double d) { return d; }
	double rand_n(double ev, double sigma);
};